package projetcvs;

import java.util.ArrayList;
import java.util.Collections;
import java.util.List;

/**
 * Write a description of class Ninja here.
 * 
 * @author (your name) 
 * @version (a version number or a date)
 */
public class Ninja
{
    // instance variables - replace the example below with your own
    private String nom;
    private String grade;
    private String techniqueSpeciale;
    private Maitre enseignant;
    private List<Arme> listeArmes;
    
    /**
     * Constructor for objects of class Ninja
     */
    public Ninja()
    {
       nom = new String("");
       grade = new String("");
       techniqueSpeciale = new String("");
       listeArmes = new ArrayList<Arme>();
    }

    public String getNom(){
        return nom;
    }
    
    public void setNom(String nom) {
        this.nom = nom;
    }
    
    public String getGrade(){
        return grade;
    }
    
    public void setGrade(String grade) {
        this.grade = grade;
    }
    
    public String getTechniqueSpeciale(){
        return techniqueSpeciale;
    }
    
    public void setTechniqueSpeciale(String techniqueSpeciale) {
        this.techniqueSpeciale = techniqueSpeciale;
    }

    public Maitre getMaitre() {
        return enseignant;
    }

    public void setMaitre(Maitre maitre) {
        this.enseignant = maitre;
    }

    public List<Arme> getListeArmes() {
    	return Collections.unmodifiableList(listeArmes);
	}
    
    public void setListeArmes(List<Arme> listeArmes) {
		this.listeArmes = listeArmes;
	}
    
    public void apprendreTechnique(String techniqueSpeciale) {
        if(this.techniqueSpeciale == null || !this.techniqueSpeciale.equals(techniqueSpeciale))
            this.techniqueSpeciale = techniqueSpeciale;
    }
    
    public void accepterMaitre(Maitre maitre) {
        if(this.enseignant == null || this.enseignant.getNom().equals(maitre.getNom())) 
            this.enseignant = maitre;
    }
    
    public void ajouterArme(Arme arme) {
    	listeArmes.add(arme);
    }
    
    public void retirerArme(Arme arme) {
    	if(listeArmes.contains(arme))
    		listeArmes.remove(arme);
    }
}
